package cn.iocoder.yudao.module.forward.service.datasourceinfo;

import javax.validation.*;
import cn.iocoder.yudao.module.forward.controller.admin.datasourceinfo.vo.*;
import cn.iocoder.yudao.module.forward.dal.dataobject.datasource.DataSourceDO;
import cn.iocoder.yudao.module.forward.dal.dataobject.datasourceinfo.DataSourceInfoDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 信息源配置 Service 接口
 *
 * @author dfs
 */
public interface DataSourceInfoService {

    /**
     * 创建信息源配置
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createDataSourceInfo(@Valid DataSourceInfoSaveReqVO createReqVO);

    /**
     * 更新信息源配置
     *
     * @param updateReqVO 更新信息
     */
    void updateDataSourceInfo(@Valid DataSourceInfoSaveReqVO updateReqVO);

    /**
     * 删除信息源配置
     *
     * @param id 编号
     */
    void deleteDataSourceInfo(Integer id);

    /**
     * 获得信息源配置
     *
     * @param id 编号
     * @return 信息源配置
     */
    DataSourceInfoDO getDataSourceInfo(Integer id);

    /**
     * 获得信息源配置分页
     *
     * @param pageReqVO 分页查询
     * @return 信息源配置分页
     */
    PageResult<DataSourceInfoDO> getDataSourceInfoPage(DataSourceInfoPageReqVO pageReqVO);

    /**
     * 根据信息源ID查询配置
     * @param sourceId
     * @return
     */
    DataSourceInfoDO getDataSourceInfoBySourceId(Integer sourceId);
}